package chapter2;

/**
 * create by yongli on 2021-07-09 10:35
 * 本章主要讲排序算法
 * 排序比较，无处不在！！！
 */

public class Section1 {

    public static void main(String[] args) {
        testTime();
    }


    public static void sortCompare() {
        //    选择排序和插入排序，对于主键都相同的数组，那个更快？
        //    选择排序总是要比较，故插入排序快
        //    那如果是逆序时，插入排序只需要比较n次
    }

    /**
     * 计算比较和交换的时间成本
     * 在java中，比较和交换，时间成本可以看做一样
     */
    public static void testTime() {
        long[] a = new long[1000000];
        long[] b = new long[1000000];
        for (int i = 0; i < 1000000; i++) {
            a[i] = Math.round(Math.random() * 1000000.0);
            b[i] = Math.round(Math.random() * 1000000.0);
        }

        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            if (a[i] == b[i]) {

            }
        }
        System.out.println("compare:" + (System.currentTimeMillis() - start));
        start = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            long temp = a[i];
            a[i] = b[i];
            b[i] = temp;
        }
        System.out.println("swap:" + (System.currentTimeMillis() - start));
    }

    public static void test(){

    }


}
